马里奥 - CS50x 2023
开始
打开 VS Code。
首先点击终端窗口内部,然后单独执行 cd
。 你会发现终端提示符类似如下:
点击终端窗口内部,然后执行
wget https://cdn.cs50.net/2022/fall/psets/1/mario-more.zip
然后按 Enter 键,以便在你的 codespace 中下载一个名为 mario-more.zip
的 ZIP 文件。 注意wget
命令后URL前的空格,以及其他任何字符都不能省略!
现在执行
来创建名为mario-more
的文件夹。 你不再需要 ZIP 文件,所以你可以执行
并在提示符后输入y
,然后按回车键删除下载的ZIP文件。
现在输入
然后按回车键进入该目录。 现在你的终端提示符应该类似如下。
如果一切顺利,你应该执行
并看到一个名为 mario.c
的文件。 执行 code mario.c
应该会打开该文件,你将在其中输入此问题集的代码。 如果没有,请回顾你的步骤,看看你哪里出错了!
世界 1-1
在任天堂的超级马里奥兄弟游戏中,第一大关的第一小关的开头,马里奥必须跳过相邻的块金字塔,如下所示。
让我们用 C 语言重新创建这些金字塔,尽管是用文本形式,使用井号 (#
) 代表砖块,如下所示。 每个井号都比其宽度略高,因此金字塔整体看起来也会比实际宽度更高。
# #
## ##
### ###
#### ####
我们将编写的程序将被称为 mario
。 我们允许用户通过输入一个1到8之间的正整数来决定金字塔的高度。
如果用户在提示时输入 8
,程序可能会这样工作:
$ ./mario
Height: 8
# #
## ##
### ###
#### ####
##### #####
###### ######
####### #######
######## ########
如果用户在提示时输入 4
,程序可能会这样工作:
$ ./mario
Height: 4
# #
## ##
### ###
#### ####
如果用户在提示时输入 2
,程序可能会这样工作:
$ ./mario
Height: 2
# #
## ##
如果用户在提示时输入 1
,程序可能会这样工作:
如果用户输入的不是1到8之间的正整数,程序应不断提示用户重新输入,直到输入正确为止。
$ ./mario
Height: -1
Height: 0
Height: 42
Height: 50
Height: 4
# #
## ##
### ###
#### ####
注意,相邻金字塔之间的间距等于两个井号的宽度,与金字塔高度无关。
打开你的 mario.c
文件来实现这个问题,如上所述!
演练
如何测试你的代码
当输入以下值时,你的代码是否能正常工作?
-1
(或其他负数)?0
?1
到8
?9
或其他正数?- 字母或单词?
- 没有输入任何内容,直接按了回车键?
您还可以执行以下命令来使用 check50
评估代码的正确性。 但请务必自己编译和测试它!
check50 cs50/problems/2023/x/mario/more
执行以下命令,使用style50
来评估代码风格。
如何提交
在您的终端中,执行以下命令来提交您的工作。
submit50 cs50/problems/2023/x/mario/more